package com.cn.jinl.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ComplainHandleExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ComplainHandleExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andCustomerIsNull() {
            addCriterion("customer is null");
            return (Criteria) this;
        }

        public Criteria andCustomerIsNotNull() {
            addCriterion("customer is not null");
            return (Criteria) this;
        }

        public Criteria andCustomerEqualTo(String value) {
            addCriterion("customer =", value, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerNotEqualTo(String value) {
            addCriterion("customer <>", value, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerGreaterThan(String value) {
            addCriterion("customer >", value, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerGreaterThanOrEqualTo(String value) {
            addCriterion("customer >=", value, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerLessThan(String value) {
            addCriterion("customer <", value, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerLessThanOrEqualTo(String value) {
            addCriterion("customer <=", value, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerLike(String value) {
            addCriterion("customer like", value, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerNotLike(String value) {
            addCriterion("customer not like", value, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerIn(List<String> values) {
            addCriterion("customer in", values, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerNotIn(List<String> values) {
            addCriterion("customer not in", values, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerBetween(String value1, String value2) {
            addCriterion("customer between", value1, value2, "customer");
            return (Criteria) this;
        }

        public Criteria andCustomerNotBetween(String value1, String value2) {
            addCriterion("customer not between", value1, value2, "customer");
            return (Criteria) this;
        }

        public Criteria andComplainCodeIsNull() {
            addCriterion("complain_code is null");
            return (Criteria) this;
        }

        public Criteria andComplainCodeIsNotNull() {
            addCriterion("complain_code is not null");
            return (Criteria) this;
        }

        public Criteria andComplainCodeEqualTo(String value) {
            addCriterion("complain_code =", value, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeNotEqualTo(String value) {
            addCriterion("complain_code <>", value, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeGreaterThan(String value) {
            addCriterion("complain_code >", value, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeGreaterThanOrEqualTo(String value) {
            addCriterion("complain_code >=", value, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeLessThan(String value) {
            addCriterion("complain_code <", value, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeLessThanOrEqualTo(String value) {
            addCriterion("complain_code <=", value, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeLike(String value) {
            addCriterion("complain_code like", value, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeNotLike(String value) {
            addCriterion("complain_code not like", value, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeIn(List<String> values) {
            addCriterion("complain_code in", values, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeNotIn(List<String> values) {
            addCriterion("complain_code not in", values, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeBetween(String value1, String value2) {
            addCriterion("complain_code between", value1, value2, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainCodeNotBetween(String value1, String value2) {
            addCriterion("complain_code not between", value1, value2, "complainCode");
            return (Criteria) this;
        }

        public Criteria andComplainDateIsNull() {
            addCriterion("complain_date is null");
            return (Criteria) this;
        }

        public Criteria andComplainDateIsNotNull() {
            addCriterion("complain_date is not null");
            return (Criteria) this;
        }

        public Criteria andComplainDateEqualTo(String value) {
            addCriterion("complain_date =", value, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateNotEqualTo(String value) {
            addCriterion("complain_date <>", value, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateGreaterThan(String value) {
            addCriterion("complain_date >", value, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateGreaterThanOrEqualTo(String value) {
            addCriterion("complain_date >=", value, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateLessThan(String value) {
            addCriterion("complain_date <", value, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateLessThanOrEqualTo(String value) {
            addCriterion("complain_date <=", value, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateLike(String value) {
            addCriterion("complain_date like", value, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateNotLike(String value) {
            addCriterion("complain_date not like", value, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateIn(List<String> values) {
            addCriterion("complain_date in", values, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateNotIn(List<String> values) {
            addCriterion("complain_date not in", values, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateBetween(String value1, String value2) {
            addCriterion("complain_date between", value1, value2, "complainDate");
            return (Criteria) this;
        }

        public Criteria andComplainDateNotBetween(String value1, String value2) {
            addCriterion("complain_date not between", value1, value2, "complainDate");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusIsNull() {
            addCriterion("accept_status is null");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusIsNotNull() {
            addCriterion("accept_status is not null");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusEqualTo(String value) {
            addCriterion("accept_status =", value, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusNotEqualTo(String value) {
            addCriterion("accept_status <>", value, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusGreaterThan(String value) {
            addCriterion("accept_status >", value, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusGreaterThanOrEqualTo(String value) {
            addCriterion("accept_status >=", value, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusLessThan(String value) {
            addCriterion("accept_status <", value, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusLessThanOrEqualTo(String value) {
            addCriterion("accept_status <=", value, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusLike(String value) {
            addCriterion("accept_status like", value, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusNotLike(String value) {
            addCriterion("accept_status not like", value, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusIn(List<String> values) {
            addCriterion("accept_status in", values, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusNotIn(List<String> values) {
            addCriterion("accept_status not in", values, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusBetween(String value1, String value2) {
            addCriterion("accept_status between", value1, value2, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andAcceptStatusNotBetween(String value1, String value2) {
            addCriterion("accept_status not between", value1, value2, "acceptStatus");
            return (Criteria) this;
        }

        public Criteria andOrderNumIsNull() {
            addCriterion("order_num is null");
            return (Criteria) this;
        }

        public Criteria andOrderNumIsNotNull() {
            addCriterion("order_num is not null");
            return (Criteria) this;
        }

        public Criteria andOrderNumEqualTo(String value) {
            addCriterion("order_num =", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotEqualTo(String value) {
            addCriterion("order_num <>", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumGreaterThan(String value) {
            addCriterion("order_num >", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumGreaterThanOrEqualTo(String value) {
            addCriterion("order_num >=", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumLessThan(String value) {
            addCriterion("order_num <", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumLessThanOrEqualTo(String value) {
            addCriterion("order_num <=", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumLike(String value) {
            addCriterion("order_num like", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotLike(String value) {
            addCriterion("order_num not like", value, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumIn(List<String> values) {
            addCriterion("order_num in", values, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotIn(List<String> values) {
            addCriterion("order_num not in", values, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumBetween(String value1, String value2) {
            addCriterion("order_num between", value1, value2, "orderNum");
            return (Criteria) this;
        }

        public Criteria andOrderNumNotBetween(String value1, String value2) {
            addCriterion("order_num not between", value1, value2, "orderNum");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameIsNull() {
            addCriterion("accept_dept_name is null");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameIsNotNull() {
            addCriterion("accept_dept_name is not null");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameEqualTo(String value) {
            addCriterion("accept_dept_name =", value, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameNotEqualTo(String value) {
            addCriterion("accept_dept_name <>", value, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameGreaterThan(String value) {
            addCriterion("accept_dept_name >", value, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameGreaterThanOrEqualTo(String value) {
            addCriterion("accept_dept_name >=", value, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameLessThan(String value) {
            addCriterion("accept_dept_name <", value, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameLessThanOrEqualTo(String value) {
            addCriterion("accept_dept_name <=", value, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameLike(String value) {
            addCriterion("accept_dept_name like", value, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameNotLike(String value) {
            addCriterion("accept_dept_name not like", value, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameIn(List<String> values) {
            addCriterion("accept_dept_name in", values, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameNotIn(List<String> values) {
            addCriterion("accept_dept_name not in", values, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameBetween(String value1, String value2) {
            addCriterion("accept_dept_name between", value1, value2, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andAcceptDeptNameNotBetween(String value1, String value2) {
            addCriterion("accept_dept_name not between", value1, value2, "acceptDeptName");
            return (Criteria) this;
        }

        public Criteria andBatchNumIsNull() {
            addCriterion("batch_num is null");
            return (Criteria) this;
        }

        public Criteria andBatchNumIsNotNull() {
            addCriterion("batch_num is not null");
            return (Criteria) this;
        }

        public Criteria andBatchNumEqualTo(String value) {
            addCriterion("batch_num =", value, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumNotEqualTo(String value) {
            addCriterion("batch_num <>", value, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumGreaterThan(String value) {
            addCriterion("batch_num >", value, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumGreaterThanOrEqualTo(String value) {
            addCriterion("batch_num >=", value, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumLessThan(String value) {
            addCriterion("batch_num <", value, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumLessThanOrEqualTo(String value) {
            addCriterion("batch_num <=", value, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumLike(String value) {
            addCriterion("batch_num like", value, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumNotLike(String value) {
            addCriterion("batch_num not like", value, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumIn(List<String> values) {
            addCriterion("batch_num in", values, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumNotIn(List<String> values) {
            addCriterion("batch_num not in", values, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumBetween(String value1, String value2) {
            addCriterion("batch_num between", value1, value2, "batchNum");
            return (Criteria) this;
        }

        public Criteria andBatchNumNotBetween(String value1, String value2) {
            addCriterion("batch_num not between", value1, value2, "batchNum");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameIsNull() {
            addCriterion("accept_user_name is null");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameIsNotNull() {
            addCriterion("accept_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameEqualTo(String value) {
            addCriterion("accept_user_name =", value, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameNotEqualTo(String value) {
            addCriterion("accept_user_name <>", value, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameGreaterThan(String value) {
            addCriterion("accept_user_name >", value, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("accept_user_name >=", value, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameLessThan(String value) {
            addCriterion("accept_user_name <", value, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameLessThanOrEqualTo(String value) {
            addCriterion("accept_user_name <=", value, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameLike(String value) {
            addCriterion("accept_user_name like", value, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameNotLike(String value) {
            addCriterion("accept_user_name not like", value, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameIn(List<String> values) {
            addCriterion("accept_user_name in", values, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameNotIn(List<String> values) {
            addCriterion("accept_user_name not in", values, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameBetween(String value1, String value2) {
            addCriterion("accept_user_name between", value1, value2, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptUserNameNotBetween(String value1, String value2) {
            addCriterion("accept_user_name not between", value1, value2, "acceptUserName");
            return (Criteria) this;
        }

        public Criteria andAcceptDateIsNull() {
            addCriterion("accept_date is null");
            return (Criteria) this;
        }

        public Criteria andAcceptDateIsNotNull() {
            addCriterion("accept_date is not null");
            return (Criteria) this;
        }

        public Criteria andAcceptDateEqualTo(String value) {
            addCriterion("accept_date =", value, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateNotEqualTo(String value) {
            addCriterion("accept_date <>", value, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateGreaterThan(String value) {
            addCriterion("accept_date >", value, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateGreaterThanOrEqualTo(String value) {
            addCriterion("accept_date >=", value, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateLessThan(String value) {
            addCriterion("accept_date <", value, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateLessThanOrEqualTo(String value) {
            addCriterion("accept_date <=", value, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateLike(String value) {
            addCriterion("accept_date like", value, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateNotLike(String value) {
            addCriterion("accept_date not like", value, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateIn(List<String> values) {
            addCriterion("accept_date in", values, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateNotIn(List<String> values) {
            addCriterion("accept_date not in", values, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateBetween(String value1, String value2) {
            addCriterion("accept_date between", value1, value2, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andAcceptDateNotBetween(String value1, String value2) {
            addCriterion("accept_date not between", value1, value2, "acceptDate");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionIsNull() {
            addCriterion("problem_description is null");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionIsNotNull() {
            addCriterion("problem_description is not null");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionEqualTo(String value) {
            addCriterion("problem_description =", value, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionNotEqualTo(String value) {
            addCriterion("problem_description <>", value, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionGreaterThan(String value) {
            addCriterion("problem_description >", value, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionGreaterThanOrEqualTo(String value) {
            addCriterion("problem_description >=", value, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionLessThan(String value) {
            addCriterion("problem_description <", value, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionLessThanOrEqualTo(String value) {
            addCriterion("problem_description <=", value, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionLike(String value) {
            addCriterion("problem_description like", value, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionNotLike(String value) {
            addCriterion("problem_description not like", value, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionIn(List<String> values) {
            addCriterion("problem_description in", values, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionNotIn(List<String> values) {
            addCriterion("problem_description not in", values, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionBetween(String value1, String value2) {
            addCriterion("problem_description between", value1, value2, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andProblemDescriptionNotBetween(String value1, String value2) {
            addCriterion("problem_description not between", value1, value2, "problemDescription");
            return (Criteria) this;
        }

        public Criteria andOpinionIsNull() {
            addCriterion("opinion is null");
            return (Criteria) this;
        }

        public Criteria andOpinionIsNotNull() {
            addCriterion("opinion is not null");
            return (Criteria) this;
        }

        public Criteria andOpinionEqualTo(String value) {
            addCriterion("opinion =", value, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionNotEqualTo(String value) {
            addCriterion("opinion <>", value, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionGreaterThan(String value) {
            addCriterion("opinion >", value, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionGreaterThanOrEqualTo(String value) {
            addCriterion("opinion >=", value, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionLessThan(String value) {
            addCriterion("opinion <", value, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionLessThanOrEqualTo(String value) {
            addCriterion("opinion <=", value, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionLike(String value) {
            addCriterion("opinion like", value, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionNotLike(String value) {
            addCriterion("opinion not like", value, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionIn(List<String> values) {
            addCriterion("opinion in", values, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionNotIn(List<String> values) {
            addCriterion("opinion not in", values, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionBetween(String value1, String value2) {
            addCriterion("opinion between", value1, value2, "opinion");
            return (Criteria) this;
        }

        public Criteria andOpinionNotBetween(String value1, String value2) {
            addCriterion("opinion not between", value1, value2, "opinion");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisIsNull() {
            addCriterion("reason_analysis is null");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisIsNotNull() {
            addCriterion("reason_analysis is not null");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisEqualTo(String value) {
            addCriterion("reason_analysis =", value, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisNotEqualTo(String value) {
            addCriterion("reason_analysis <>", value, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisGreaterThan(String value) {
            addCriterion("reason_analysis >", value, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisGreaterThanOrEqualTo(String value) {
            addCriterion("reason_analysis >=", value, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisLessThan(String value) {
            addCriterion("reason_analysis <", value, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisLessThanOrEqualTo(String value) {
            addCriterion("reason_analysis <=", value, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisLike(String value) {
            addCriterion("reason_analysis like", value, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisNotLike(String value) {
            addCriterion("reason_analysis not like", value, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisIn(List<String> values) {
            addCriterion("reason_analysis in", values, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisNotIn(List<String> values) {
            addCriterion("reason_analysis not in", values, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisBetween(String value1, String value2) {
            addCriterion("reason_analysis between", value1, value2, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andReasonAnalysisNotBetween(String value1, String value2) {
            addCriterion("reason_analysis not between", value1, value2, "reasonAnalysis");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameIsNull() {
            addCriterion("responsible_dept_name is null");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameIsNotNull() {
            addCriterion("responsible_dept_name is not null");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameEqualTo(String value) {
            addCriterion("responsible_dept_name =", value, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameNotEqualTo(String value) {
            addCriterion("responsible_dept_name <>", value, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameGreaterThan(String value) {
            addCriterion("responsible_dept_name >", value, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameGreaterThanOrEqualTo(String value) {
            addCriterion("responsible_dept_name >=", value, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameLessThan(String value) {
            addCriterion("responsible_dept_name <", value, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameLessThanOrEqualTo(String value) {
            addCriterion("responsible_dept_name <=", value, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameLike(String value) {
            addCriterion("responsible_dept_name like", value, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameNotLike(String value) {
            addCriterion("responsible_dept_name not like", value, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameIn(List<String> values) {
            addCriterion("responsible_dept_name in", values, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameNotIn(List<String> values) {
            addCriterion("responsible_dept_name not in", values, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameBetween(String value1, String value2) {
            addCriterion("responsible_dept_name between", value1, value2, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleDeptNameNotBetween(String value1, String value2) {
            addCriterion("responsible_dept_name not between", value1, value2, "responsibleDeptName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameIsNull() {
            addCriterion("responsible_user_name is null");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameIsNotNull() {
            addCriterion("responsible_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameEqualTo(String value) {
            addCriterion("responsible_user_name =", value, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameNotEqualTo(String value) {
            addCriterion("responsible_user_name <>", value, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameGreaterThan(String value) {
            addCriterion("responsible_user_name >", value, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("responsible_user_name >=", value, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameLessThan(String value) {
            addCriterion("responsible_user_name <", value, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameLessThanOrEqualTo(String value) {
            addCriterion("responsible_user_name <=", value, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameLike(String value) {
            addCriterion("responsible_user_name like", value, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameNotLike(String value) {
            addCriterion("responsible_user_name not like", value, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameIn(List<String> values) {
            addCriterion("responsible_user_name in", values, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameNotIn(List<String> values) {
            addCriterion("responsible_user_name not in", values, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameBetween(String value1, String value2) {
            addCriterion("responsible_user_name between", value1, value2, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andResponsibleUserNameNotBetween(String value1, String value2) {
            addCriterion("responsible_user_name not between", value1, value2, "responsibleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameIsNull() {
            addCriterion("handle_dept_name is null");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameIsNotNull() {
            addCriterion("handle_dept_name is not null");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameEqualTo(String value) {
            addCriterion("handle_dept_name =", value, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameNotEqualTo(String value) {
            addCriterion("handle_dept_name <>", value, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameGreaterThan(String value) {
            addCriterion("handle_dept_name >", value, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameGreaterThanOrEqualTo(String value) {
            addCriterion("handle_dept_name >=", value, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameLessThan(String value) {
            addCriterion("handle_dept_name <", value, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameLessThanOrEqualTo(String value) {
            addCriterion("handle_dept_name <=", value, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameLike(String value) {
            addCriterion("handle_dept_name like", value, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameNotLike(String value) {
            addCriterion("handle_dept_name not like", value, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameIn(List<String> values) {
            addCriterion("handle_dept_name in", values, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameNotIn(List<String> values) {
            addCriterion("handle_dept_name not in", values, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameBetween(String value1, String value2) {
            addCriterion("handle_dept_name between", value1, value2, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleDeptNameNotBetween(String value1, String value2) {
            addCriterion("handle_dept_name not between", value1, value2, "handleDeptName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameIsNull() {
            addCriterion("handle_user_name is null");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameIsNotNull() {
            addCriterion("handle_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameEqualTo(String value) {
            addCriterion("handle_user_name =", value, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameNotEqualTo(String value) {
            addCriterion("handle_user_name <>", value, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameGreaterThan(String value) {
            addCriterion("handle_user_name >", value, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("handle_user_name >=", value, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameLessThan(String value) {
            addCriterion("handle_user_name <", value, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameLessThanOrEqualTo(String value) {
            addCriterion("handle_user_name <=", value, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameLike(String value) {
            addCriterion("handle_user_name like", value, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameNotLike(String value) {
            addCriterion("handle_user_name not like", value, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameIn(List<String> values) {
            addCriterion("handle_user_name in", values, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameNotIn(List<String> values) {
            addCriterion("handle_user_name not in", values, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameBetween(String value1, String value2) {
            addCriterion("handle_user_name between", value1, value2, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleUserNameNotBetween(String value1, String value2) {
            addCriterion("handle_user_name not between", value1, value2, "handleUserName");
            return (Criteria) this;
        }

        public Criteria andHandleTimeIsNull() {
            addCriterion("handle_time is null");
            return (Criteria) this;
        }

        public Criteria andHandleTimeIsNotNull() {
            addCriterion("handle_time is not null");
            return (Criteria) this;
        }

        public Criteria andHandleTimeEqualTo(String value) {
            addCriterion("handle_time =", value, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeNotEqualTo(String value) {
            addCriterion("handle_time <>", value, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeGreaterThan(String value) {
            addCriterion("handle_time >", value, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeGreaterThanOrEqualTo(String value) {
            addCriterion("handle_time >=", value, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeLessThan(String value) {
            addCriterion("handle_time <", value, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeLessThanOrEqualTo(String value) {
            addCriterion("handle_time <=", value, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeLike(String value) {
            addCriterion("handle_time like", value, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeNotLike(String value) {
            addCriterion("handle_time not like", value, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeIn(List<String> values) {
            addCriterion("handle_time in", values, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeNotIn(List<String> values) {
            addCriterion("handle_time not in", values, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeBetween(String value1, String value2) {
            addCriterion("handle_time between", value1, value2, "handleTime");
            return (Criteria) this;
        }

        public Criteria andHandleTimeNotBetween(String value1, String value2) {
            addCriterion("handle_time not between", value1, value2, "handleTime");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameIsNull() {
            addCriterion("reply_user_name is null");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameIsNotNull() {
            addCriterion("reply_user_name is not null");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameEqualTo(String value) {
            addCriterion("reply_user_name =", value, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameNotEqualTo(String value) {
            addCriterion("reply_user_name <>", value, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameGreaterThan(String value) {
            addCriterion("reply_user_name >", value, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameGreaterThanOrEqualTo(String value) {
            addCriterion("reply_user_name >=", value, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameLessThan(String value) {
            addCriterion("reply_user_name <", value, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameLessThanOrEqualTo(String value) {
            addCriterion("reply_user_name <=", value, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameLike(String value) {
            addCriterion("reply_user_name like", value, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameNotLike(String value) {
            addCriterion("reply_user_name not like", value, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameIn(List<String> values) {
            addCriterion("reply_user_name in", values, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameNotIn(List<String> values) {
            addCriterion("reply_user_name not in", values, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameBetween(String value1, String value2) {
            addCriterion("reply_user_name between", value1, value2, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyUserNameNotBetween(String value1, String value2) {
            addCriterion("reply_user_name not between", value1, value2, "replyUserName");
            return (Criteria) this;
        }

        public Criteria andReplyTimeIsNull() {
            addCriterion("reply_time is null");
            return (Criteria) this;
        }

        public Criteria andReplyTimeIsNotNull() {
            addCriterion("reply_time is not null");
            return (Criteria) this;
        }

        public Criteria andReplyTimeEqualTo(String value) {
            addCriterion("reply_time =", value, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeNotEqualTo(String value) {
            addCriterion("reply_time <>", value, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeGreaterThan(String value) {
            addCriterion("reply_time >", value, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeGreaterThanOrEqualTo(String value) {
            addCriterion("reply_time >=", value, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeLessThan(String value) {
            addCriterion("reply_time <", value, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeLessThanOrEqualTo(String value) {
            addCriterion("reply_time <=", value, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeLike(String value) {
            addCriterion("reply_time like", value, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeNotLike(String value) {
            addCriterion("reply_time not like", value, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeIn(List<String> values) {
            addCriterion("reply_time in", values, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeNotIn(List<String> values) {
            addCriterion("reply_time not in", values, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeBetween(String value1, String value2) {
            addCriterion("reply_time between", value1, value2, "replyTime");
            return (Criteria) this;
        }

        public Criteria andReplyTimeNotBetween(String value1, String value2) {
            addCriterion("reply_time not between", value1, value2, "replyTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLike(String value) {
            addCriterion("status like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotLike(String value) {
            addCriterion("status not like", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<String> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<String> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}